package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 活动标签对象 activity_ticket
 *
 * @author ruoyi
 * @date 2025-01-12
 */
public class ActivityTicket extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 活动编码
     */
    @Excel(name = "活动编码")
    private String activityId;

    /**
     * 票种名称
     */
    @Excel(name = "票种名称")
    private String ticketName;

    /**
     * 票种类型
     */
    @Excel(name = "票种类型")
    private Long ticketType;

    /**
     * 单价
     */
    @Excel(name = "单价")
    private BigDecimal price;

    /**
     * 最大报名人数
     */
    @Excel(name = "最大报名人数")
    private Integer enrollMaxCount;

    /**
     * 单人限购数量
     */
    @Excel(name = "单人限购数量")
    private Integer limitQuantity;

    /**
     * 剩余可报名数量
     */
    @Excel(name = "剩余可报名数量")
    private Long leftQuantity;

    /**
     * 购买截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "购买截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDateTime buyDeadline;

    /**
     * 退款截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "退款截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDateTime refundDeadline;

    /**
     * 创建者
     */
    @Excel(name = "创建者")
    private String createUser;

    /**
     * 更新者
     */
    @Excel(name = "更新者")
    private String updateUser;

    /**
     * 是否有效 1有效 0 无效
     */
    @Excel(name = "是否有效 1有效 0 无效")
    private Long yn;

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setActivityId(String activityId) {
        this.activityId = activityId;
    }

    public String getActivityId() {
        return activityId;
    }

    public void setTicketName(String ticketName) {
        this.ticketName = ticketName;
    }

    public String getTicketName() {
        return ticketName;
    }

    public void setTicketType(Long ticketType) {
        this.ticketType = ticketType;
    }

    public Long getTicketType() {
        return ticketType;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setEnrollMaxCount(Integer enrollMaxCount) {
        this.enrollMaxCount = enrollMaxCount;
    }

    public Integer getEnrollMaxCount() {
        return enrollMaxCount;
    }

    public void setLimitQuantity(Integer limitQuantity) {
        this.limitQuantity = limitQuantity;
    }

    public Integer getLimitQuantity() {
        return limitQuantity;
    }

    public void setLeftQuantity(Long leftQuantity) {
        this.leftQuantity = leftQuantity;
    }

    public Long getLeftQuantity() {
        return leftQuantity;
    }

    public void setBuyDeadline(LocalDateTime buyDeadline) {
        this.buyDeadline = buyDeadline;
    }

    public LocalDateTime getBuyDeadline() {
        return buyDeadline;
    }

    public void setRefundDeadline(LocalDateTime refundDeadline) {
        this.refundDeadline = refundDeadline;
    }

    public LocalDateTime getRefundDeadline() {
        return refundDeadline;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setYn(Long yn) {
        this.yn = yn;
    }

    public Long getYn() {
        return yn;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("activityId", getActivityId())
                .append("ticketName", getTicketName())
                .append("ticketType", getTicketType())
                .append("price", getPrice())
                .append("enrollMaxCount", getEnrollMaxCount())
                .append("limitQuantity", getLimitQuantity())
                .append("leftQuantity", getLeftQuantity())
                .append("buyDeadline", getBuyDeadline())
                .append("refundDeadline", getRefundDeadline())
                .append("createUser", getCreateUser())
                .append("createTime", getCreateTime())
                .append("updateUser", getUpdateUser())
                .append("updateTime", getUpdateTime())
                .append("yn", getYn())
                .toString();
    }
}
